#ifndef RTAPI_MATH64_H
#define RTAPI_MATH64_H

#include <rtapi_stdint.h>

#ifdef __KERNEL__
#include <linux/math64.h>
#define rtapi_div_u64_rem div_u64_rem
#define rtapi_div_u64 div_u64
#define rtapi_div_s64_rem div_s64_rem
#define rtapi_div_s64 div_s64
#else
static inline rtapi_u64 rtapi_div_u64_rem(rtapi_u64 dividend, rtapi_u32 divisor, rtapi_u32* remainder)
{
    *remainder = dividend % divisor;
    return dividend / divisor;
}

static inline rtapi_u64 rtapi_div_u64(rtapi_u64 dividend, rtapi_u32 divisor) { return dividend / divisor; }
static inline rtapi_s64 rtapi_div_s64_rem(rtapi_s64 dividend, rtapi_s32 divisor, rtapi_s32* remainder)
{
    *remainder = dividend % divisor;
    return dividend / divisor;
}

static inline rtapi_s64 rtapi_div_s64(rtapi_s64 dividend, rtapi_s32 divisor) { return dividend / divisor; }
#endif

#endif
